import domain.Person;

/**
 获取Class对象的方式：
 1. Class.forName("全类名")：将字节码文件加载进内存，返回Class对象
 2. 类名.class：通过类名的属性class获取
 3. 对象.getClass()：getClass()方法在Object类中有定义。
 */
public class Reflect_GetClass {
    public static void main(String[] args) throws ClassNotFoundException {
        //1.Class.forName("全类名")：将字节码文件加载进内存，返回Class对象
        Class cls1 = Class.forName("domain.Person");
        System.out.println(cls1);//class domain.Person
        //2.类名.class：通过类名的属性class获取
        Class cls2 = Person.class;
        System.out.println(cls2);//class domain.Person
        //3.对象.getClass()：getClass()方法在Object类中有定义。
        Person p = new Person();
        Class cls3 = p.getClass();
        System.out.println(cls3);//class domain.Person

        //比较三个Class对象是否是同一个
        System.out.println(cls1 == cls2);//true
        System.out.println(cls1 == cls3);//true
    }
}
